#include <klee/klee.h>
#include <stdio.h>

typedef struct mem {
    int i;
    int j;
}memtype;

struct memm {
    int i;
    int *pj;
    mem m;
    mem *pm;
};

struct mm {
    int i;
    memm m;
};

typedef struct testt {
    int i;
    int j;
    int *pj;
    memm memm;
    mm mm;
    mem mem;
    memtype m;
    memtype *pm;
    struct mem *ppm;
    // to-do
    // jkj *p;
    // mem *pppm;
    // struct testt *next;
}testttype;

int array[10];

int teset(mm _m, memm _memm, testt _testt, mem _mem, mem *_pmem, int i, int *pj);

int testDataGen(testt t, testt tt);

int testDataGen(testt t, testt tt)
{
    int out = 0;
    if(1 == t.i) {
        out += 1;
    }
    if(2 == t.j) {
        out += 10;
    }
    if(3 == t.m.i) {
        out += 100;
    }
    if(4 == t.memm.pm->i) {
        out += 1000;
    }
    if(5 == t.mm.m.pm->i) {
        out += 10000;
    }
    return out;
}